﻿// 702 差分练习.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
http://oj.daimayuan.top/course/22/problem/285


给一个数列 a1,a2,…,an。

要求支持 q个操作，每次会给一段区间 [l,r]，将 al,al+1,…,ar 全都加上 1。

问最后整个数列会变成什么样。

输入格式
第一行两个整数 n,q。

接下来一行 n个整数 a1,a2,…,an。

接下来 q 行，每行两个整数 l,r。

输出格式
输出一行 n个整数，表示答案。

样例输入
5 3
1 2 3 4 5
1 3
2 4
3 5
样例输出
2 4 6 6 6
数据规模
对于 100% 的数据，保证 1≤n,q≤105,1≤ai≤105,1≤l≤r≤n
*/
#include <iostream>

using namespace std;

const int N = 100010;
long long pre[N];
int a[N];

int n, q,l, r;

int main()
{
	cin >> n >> q;
	for (int i = 1; i <= n; i++) cin >> a[i];
	for (int i = 1; i <= n; i++) {
		pre[i] = a[i] - a[i - 1];
	}
	for (int i = 1; i <= q; i++) {
		int l, r; cin >> l >> r;
		pre[l]++; pre[r + 1]--;
	}

	for (int i = 1; i <= n; i++) {
		pre[i] = pre[i] + pre[i - 1];
		cout << pre[i] << " ";
	}


 
}

 